package com.xrh.core.generater.mongo;

import java.io.File;
import java.io.IOException;

import com.xrh.core.generater.bean.UserInput;
import com.xrh.core.generater.interfaces.TemplateRootPath;
import com.xrh.core.generater.utils.FileUtils;
import com.xrh.core.generater.utils.MarkEnum;
import com.xrh.core.generater.utils.TemplateNameEnum;
import com.xrh.core.generater.utils.TemplateReader;
import com.xrh.core.generater.utils.JavaFileAttributeUtils.MongoEntityInfo;

//remoteServiceImpl文件生成器
public class ServiceGenerater {

		//生成文件
		public static void generateFile(UserInput userInput , MongoEntityInfo tableInfo , TemplateRootPath templateRootPath) throws IOException{
			
			String templateTxt = generateTemplateTxt(userInput , tableInfo , templateRootPath);
			
			FileUtils.generateFile(userInput.getOutputDirPath() +File.separator +  "service", 
					tableInfo.getBigClassName() + "Service.java", templateTxt);
		}
		
		/**
		* @function 生成模板字符串
		* @author 肖荣辉
		* @date 2018年10月23日
		*/
		public static String generateTemplateTxt(UserInput userInput , MongoEntityInfo tableInfo , TemplateRootPath templateRootPath) throws IOException{
			
			String templateTxt = TemplateReader.readTextTemplate(templateRootPath , TemplateNameEnum.Service模板.name());
			
			//通用替换
			templateTxt = MarkEnum.replaceMark(templateTxt , userInput , tableInfo);
			templateTxt = MarkEnum.replace(MarkEnum.BIG_ENTITY_NAME_MARK, templateTxt, tableInfo.getBigEntityName());
			templateTxt = MarkEnum.replace(MarkEnum.SMALL_ENTITY_NAME_MARK, templateTxt, tableInfo.getSmallEntityName());
			
			return templateTxt;
		}
		
}
